1. Field of the Invention
The present invention relates to operating systems. More specifically, the present invention relates to a method and an apparatus to use a 32-bit operating system kernel to support 64-bit applications in addition to legacy 32-bit applications.
2. Related Art
The exponential increase in the size and complexity of processors has been accompanied by a similar explosion in the size and complexity of software applications that execute on these processors. Furthermore, the amount of data that these software applications manipulate has also increased dramatically.
These developments have created a strong need to migrate computer systems to 64-bit architectures. Note that today's 32-bit architectures are limited to 4 GB (gigabytes) of virtual memory space. By moving to a 64-bit architecture, a computer system can support applications that require a substantially larger virtual memory space. Furthermore, 64-bit processors typically have additional capabilities which can substantially improve the performance of these applications.
Unfortunately, migrating from a 32-bit architecture to a 64-bit architecture can require substantial amount of time and resources. Prior art techniques to upgrade to a 64-bit architecture usually require a brand new operating system (OS) which is specifically written for the 64-bit architecture. In particular, prior art techniques typically create the new 64-bit OS kernel by making extensive modifications to an existing 32-bit OS kernel. Furthermore, prior art techniques typically require third party vendors to rewrite their device drivers to interoperate with the new 64-bit OS kernel.
Note that, since the OS is a fundamental piece of software, it is usually subjected to a battery of stringent regression tests before it is introduced in the market. Unfortunately, making extensive changes to a complex piece of software, such as an OS kernel, inevitably creates a number of subtle bugs that can take weeks or even months to identify and fix. Due to these reasons, prior art techniques typically require a large team of engineers to work for a number of months, if not years, to upgrade an OS to a 64-bit architecture.
Hence, what is needed is a method and an apparatus to enable a system to migrate from a 32-bit architecture to a 64-bit architecture without the above-described problems.